package com.imooc.oa.utils;

import org.apache.commons.codec.digest.DigestUtils;

public class MD5Utils {
    /**
     *md5对字符串进行加密
     * @param source 原始的字符串
     * @return 经过md5加密后的字符串
     */
    public  static String md5Digest(String source)
    {
       return DigestUtils.md5Hex(source);
    }

    /**
     * 对源数据加盐混淆后生成MD5摘要
     * @param source 源数据
     * @param salt 盐值
     * @return MD5摘要
     */
    public static  String md5Digest(String source,Integer salt)
    {
        char[] ca=source.toCharArray();//将源数据转换成字符数组
        for(int i=0;i<ca.length;i++)
        {//这里是对每个字符进行加 盐值进行混淆，实际会进行跟复杂的算法进行混淆   
            ca[i]=(char)(ca[i]+salt);
        }
       String target=new String(ca);
        String result=DigestUtils.md5Hex(target);
        return  result;
    }

    public static void main(String[] args) {
        System.out.println(md5Digest("test", 188));
        System.out.println(md5Digest("test", 189));
        System.out.println(md5Digest("test", 190));
        System.out.println(md5Digest("test", 191));
        System.out.println(md5Digest("test", 192));
        System.out.println(md5Digest("test", 193));
        System.out.println(md5Digest("test", 194));
        System.out.println(md5Digest("test", 195));
        System.out.println(md5Digest("test", 196));
        System.out.println(md5Digest("test", 197));
    }
}
